function [ data ] = randData( size, range, margin, d)
% genera un conjunto de datos de tamaño size en rango range

    %genero numeros al azar entre -rango y rango
    points = random('unif', -range, range, [size 2]);
    if d
        points= vertcat(points, random('unif', 0, range, [size/4 2]));
    end
    %construyo la estructura utilizada por las redes
    data = som_data_struct(points);
    data.intense = d;
    %defino los nombres de las clases (los cuadrantes del eje cartesiano)
    data.label_names = ['SW';'SE';'NW';'NE'];
    %calculo la posicion de cada clase
    clases = (((sign(data.data)+1)/2) * [2 1]') + 1;
    %asigno el nombre de cada clase a cada punto-
    data.labels = data.label_names(clases,:);
    %hago un corrimiento (todos numeros positivos separados por un margen)
    data.data = data.data + sign(data.data)*margin + 2*margin + range;
end

